/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cube.estructura.per;

import cube.estructura.obj.CalificacionUsuario;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Leonardo
 */
public class CalificacionUsuarioPer
{  
   public static CalificacionUsuario obtenerCalificacionUsuario(Connection con, long xIdUsuario, long xIdClubDeportivo) throws Exception
   {
        CalificacionUsuario objCalificacionUsuario = new CalificacionUsuario();

        try
        {
            PreparedStatement st=con.prepareStatement(" select * " +
                                                      " from CALIFICACION_USUARIO "+
                                                      " where ID_USUARIO = ? and "+
                                                      " ID_CLUB_DEPORTIVO = ? ");
            st.setLong(1, xIdUsuario);
            st.setLong(2, xIdClubDeportivo);

            ResultSet resultado = st.executeQuery();

            if(resultado.next())
            {
                objCalificacionUsuario.setIdUsuario(resultado.getLong("ID_USUARIO"));
                objCalificacionUsuario.setIdClubDeportivo(resultado.getLong("ID_CLUB_DEPORTIVO"));
                objCalificacionUsuario.setCalificacion(resultado.getLong("CALIFICACION"));
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return objCalificacionUsuario;
   }

   public static boolean existeCalificacionUsuario(Connection con, long xIdUsuario, long xIdClubDeportivo) throws Exception
   {
        try
        {
            PreparedStatement st=con.prepareStatement(" select count(*) as EXISTE " +
                                                      " from CALIFICACION_USUARIO " +
                                                      " where ID_USUARIO = ? and "+
                                                      " ID_CLUB_DEPORTIVO = ? ");

            st.setLong(1, xIdUsuario);
            st.setLong(2, xIdClubDeportivo);

            ResultSet resultado = st.executeQuery();

            if (resultado.next())
            {
                if (resultado.getInt("EXISTE")==0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return false;
   }

   public static ArrayList<CalificacionUsuario> obtenerColeccionCalificacionUsuario(Connection con) throws Exception
   {
        ArrayList colCalificacionUsuario = new ArrayList();

        try
        {
            PreparedStatement st=con.prepareStatement(" select * " +
                                                      " from CALIFICACION_USUARIO ");

            ResultSet resultado = st.executeQuery();

            while (resultado.next())
            {
                CalificacionUsuario objCalificacionUsuario = new CalificacionUsuario();

                objCalificacionUsuario.setIdUsuario(resultado.getLong("ID_USUARIO"));
                objCalificacionUsuario.setIdClubDeportivo(resultado.getLong("ID_CLUB_DEPORTIVO"));
                objCalificacionUsuario.setCalificacion(resultado.getLong("CALIFICACION"));

                colCalificacionUsuario.add(objCalificacionUsuario);
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return colCalificacionUsuario;
    }

    public static void altaCalificacionUsuario(Connection con, CalificacionUsuario xObjCalificacionUsuario) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement(" insert into CALIFICACION_USUARIO values (?,?,?)");

            st.setLong(1, xObjCalificacionUsuario.getIdUsuario());
            st.setLong(2, xObjCalificacionUsuario.getIdClubDeportivo());
            st.setLong(3, xObjCalificacionUsuario.getCalificacion());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void bajaCalificacionUsuario(Connection con, CalificacionUsuario xObjCalificacionUsuario) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement(" delete from CALIFICACION_USUARIO " +
                                                      " where ID_USUARIO = ? and "+
                                                      " ID_CLUB_DEPORTIVO = ? ");

            st.setLong(1, xObjCalificacionUsuario.getIdUsuario());
            st.setLong(2, xObjCalificacionUsuario.getIdClubDeportivo());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void modificaCalificacionUsuario(Connection con, CalificacionUsuario xObjCalificacionUsuario) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement(" update CALIFICACION_USUARIO " +
                                                      " CALIFICACION = ? "+
                                                      " where ID_USUARIO = ? and "+
                                                      " ID_CLUB_DEPORTIVO = ? ");

            st.setLong(1, xObjCalificacionUsuario.getCalificacion());
            st.setLong(2, xObjCalificacionUsuario.getIdUsuario());
            st.setLong(3, xObjCalificacionUsuario.getIdClubDeportivo());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }
}
